package edu.ccut.saturn.component;

/**
 * 数据库连接池配置信息。
 * @author 温建
 * @version 1.0 2008.9.04
 *
 */
public interface IDatabaseConfigInfo {

	/**
	 * 获得数据库类型
	 * @return
	 */
	public abstract String getDbType();

	/**
	 * 设置数据库类型
	 * @param dbType
	 */
	public abstract void setDbType(String dbType);

	/**
	 * 获得连接类型
	 * @return
	 */
	public abstract String getConnectType();

	/**
	 * 设置连接类型
	 * @param connectType
	 */
	public abstract void setConnectType(String connectType);

	/**
	 * 获得JNDI名称
	 * @return
	 */
	public abstract String getJndiname();

	/**
	 * 设置JNDI名称
	 * @param jndiname
	 */
	public abstract void setJndiname(String jndiname);

	/**
	 * 获得jdbc驱动的类名
	 * @return
	 */
	public abstract String getJdbcdriver();

	/**
	 * 设置jdbc驱动的类名
	 * @param jdbcdriver
	 */
	public abstract void setJdbcdriver(String jdbcdriver);

	/**
	 * 获得jdbc连接url
	 * @return
	 */
	public abstract String getJdbcurl();

	/**
	 * 设置jdbc连接url
	 * @param jdbcurl
	 */
	public abstract void setJdbcurl(String jdbcurl);

	/**
	 * 获得用户名
	 * @return
	 */
	public abstract String getUsername();

	/**
	 * 设置用户名
	 * @param username
	 */
	public abstract void setUsername(String username);

	/**
	 * 获得密码
	 * @return
	 */
	public abstract String getPassword();

	/**
	 * 设置密码
	 * @param password
	 */
	public abstract void setPassword(String password);

	/**
	 * 获得连接池中的最大活动连接数
	 * @return
	 */
	public abstract String getMaxActive();

	/**
	 * 获得连接池中的最大活动连接数
	 * @param maxActive
	 */
	public abstract void setMaxActive(String maxActive);

	/**
	 * 获得连接池中的最大空闲的连接数
	 * @return
	 */
	public abstract String getMaxIdle();

	/**
	 * 设置连接池中的最大空闲的连接数
	 * @param maxIdle
	 */
	public abstract void setMaxIdle(String maxIdle);

	/**
	 * 获得当连接池中连接用完时,新的请求的等待时间
	 * @return
	 */
	public abstract String getMaxWait();

	/**
	 * 设置当连接池中连接用完时,新的请求的等待时间
	 * @param maxWait
	 */
	public abstract void setMaxWait(String maxWait);

	/**
	 * 获得是否删除泄露的连接的标识，需配合removeAbandonedTimeout使用
	 * @return
	 */
	public abstract String getRemoveAbandoned();

	/**
	 * 设置是否删除泄露的连接的标识，需配合removeAbandonedTimeout使用
	 * @param removeAbandoned
	 */
	public abstract void setRemoveAbandoned(String removeAbandoned);

	/**
	 * 获得泄露的连接可以被删除的超时值, 单位秒
	 * @return
	 */
	public abstract String getRemoveAbandonedTimeout();

	/**
	 * 设置泄露的连接可以被删除的超时值, 单位秒
	 * @param removeAbandonedTimeout
	 */
	public abstract void setRemoveAbandonedTimeout(String removeAbandonedTimeout);

	/**
	 * 获得是否在从池中取出连接前进行检验的属性
	 * @return
	 */
	public abstract String getTestOnBorrow();

	/**
	 * 参数testOnBorrow指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
	 * @param testOnBorrow
	 */
	public abstract void setTestOnBorrow(String testOnBorrow);

	/**
	 * 获得验证连接是否成功的查询字符串
	 * @return
	 */
	public abstract String getValidationQuery();

	/**
	 * 设置验证连接是否成功的查询字符串
	 * @param validationQuery
	 */
	public abstract void setValidationQuery(String validationQuery);

}